package com.aier.user.service;

import java.util.List;
import java.util.Map;

import com.aier.user.entity.User;
import com.aier.user.entity.UserPhotoImg;
import com.aier.user.entity.UserPhotoType;

public interface IUserService {
    
    /**
     * 获取短信验证码
     * @return
     */
    String insertPhoneMessage(String phone);
    
    
    /**
     * 检测短信验证码
     * @return
     */
    int checkPhoneMessage(String phone,String message);    
    
    /**
     * 根据条件查询用户
     * @return
     */
    User searchUserByCondition(String account);
    
    /**
     * 根据昵称查询用户
     * @return
     */
    User searchUserByNickname(String nickname);
    
    /**
     * 根据用户ID查询出用户信息
     */
    User getUserByUid(Long uid);

    /**
     * 根据昵称查询用户数量
     * @return
     */
    int countUserByNickName(String nickName,Long uid);
    
    /**
     * 根据条件查询用户
     * @return
     */
    User searchUserByCondition(String account,String pwd);    
    
    /**
     * 注册用户
     * @return
     */
    int insertUserNormal(User user);
    
    /**
     * 获取baby用户--家长uid,宝宝名 ---没找到就新建一个
     * @return
     */
    User insertUserBabyByCondition(Long uid, String baby_name,String relation);
    
    /**
     * 获取baby用户--家长uid,宝宝名 ---没找到就新建一个
     * @return
     */
    Long insertUserBabyByConditionNew(Long uid, String baby_name,String relation,Long cid);
    
    /**
     * 修改账号密码
     * @return
     */
    int updateUserPwd(String account,String pwd);
    
    /**
     * 修改用户头像
     * @return
     */
    int updateUserHeadImg(Long uid,String img);
    
    /**
     * 修改用户信息
     * @return
     */
    int updateUserInfo(User user);
    
    
    int updateUserInfoNew(String account,String phone,String nickname);
    /**
     * 修改用户信息（手机号码和昵称）
     * @return
     */
    int updateUserInfoNew(Long uid,String account,String phone,String nickname);
    
    /**
     * 修改用户个人封面
     */
    int updateUserCoverimg(String coverimg,Long uid);

//=====================================================================================    
    
    /**
     * 分页显示用户相册分类列表
     * @return
     */
    Map<String, Object> searchUserPhotoTypeList(int page,int pagesize, Long uid);
    
    List<UserPhotoType> searchUserPhotoTypeList(Long uid);
    
    /**
     * 添加用户相册分类
     * @return
     */
    int insertUserPhotoType(UserPhotoType upt);
    
    UserPhotoType searchUserPhotoType(Long uptid);
    
    /**
     * 修改用户相册分类
     * @return
     */
    int updateUserPhotoType(UserPhotoType upt);
    
    /**
     * 修改用户相册分类封面
     * @return
     */
    int updateUserPhotoTypeCover(String img,Long uptid);
    /**
     * 删除用户相册分类
     * @return
     */
    int deleteUserPhotoType(Long uptid);

//=====================================================================================    
    
    /**
     * 分页显示用户某一类相册图片列表
     * @return
     */
    Map<String, Object> searchUserPhotoImgList(int page,int pagesize, Long uptid);
    
    List<UserPhotoImg> searchUserPhotoImgList(Long uptid);
    
    /**
     * 添加用户某一类相册图片
     * @return
     */
    long insertUserPhotoImg(UserPhotoImg upi);
    
    UserPhotoImg searchUserPhotoImg(Long upiid);
    
    /**
     * 修改用户某一类相册图片
     * @return
     */
    int updateUserPhotoImg(UserPhotoImg upi);
    
    /**
     * 删除用户某一类相册图片
     * @return
     */
    int deleteUserPhotoImg(Long upiid);
    
    /**
     * 把相册图片设为该相册分类的封面
     * @return
     */
    int updateUserPhotoImg_face(Long upiid);

//=====================================================================================    
    
    /**
     * 查询用户的宝宝列表
     * @return
     */
    List<User> searchUserBabyList(Long uid);

    /**
     * 删除家长和宝宝的关联关系
     * @return
     */
    int deleteParentBaby(Long parent_uid, Long baby_uid);

    /**
     * 修改手机唯一标示符
     * @return
     */
    int updatePhoneImeiByUid(String phone_imei, Long uid);
    
    /**
     * 更新Appuid
     * @param phone_imei
     * @param uid
     * @return
     */
    int updateOrInsertAppUid(String appUid, Long uid);
    
	/**
	 * 新版APP看看的baby信息
	 */
    int insertParentBabyApp(Long parent_uid, Long baby_uid); 
    
	/**
	 * 新版APP删除的baby信息
	 */
    int deleteParentBabyApp(Long parent_uid);   
    
    /**
     * 更新宝宝的信息
     * @param parent_uid
     * @param user
     * @return 
     */
    int updateBabyinfo(Long parent_uid,User user);
    /**
     * 根据家长查询宝宝
     * @param user
     * @return
     */
     User searchBabyByUserid(Long uid);
     /**
      * app端更新用户跟宝宝的信息
      * @param user
      */
    int updateUserapp(User user);
     /**
      * 根据家长id查询宝宝 列表
      * @param uid
      * @return
      */
     List<User> searchBabyByList(Long uid);
     
     
     /**
      * 根据用户Uid获取推送APPUid
      */
     public User getAppUid(Long Uid);
     
     /**
      * 插入在线用户
      * @param uid
      * @return
      */
     public int insertUserOnline(Long uid);
     
     /**
      * 
      * @param uid
      * @return
      */
     public int updateUserOnline(Long uid);
     
     
     /**
      * 查询用户是否在线
      * @param uid
      * @return
      */
     public boolean serachUserOnline(Long uid);
}
